"""
list列表的常用操作:
    1.index()
    2.列表[修改的下标索引] = 修改值
    3.insert()
    4.append()
    5.extend()
    6.1 del 列表[下标索引]
    6.2 pop()
    7.remove()
    8.clear()
    9.count()
    10.len(列表)
"""

# 定义一个基础列表
my_list = ["caoCao", "liuBei", "sunQuan"]

# 1.1查找某个元素在列表中的下标索引
index = my_list.index("caoCao")
print(f"下标索引:{index}")
# 1.2如果查找的元素不存在，则会报错 ValueError: 'dongJian' is not in list
# dongJian_index = my_list.index("dongJian")
# print(f"dongJian的下标所以为:{dongJian_index}")

# 2.修改特定下标索引的值
my_list[0] = "zhangFei"
print(f"修改特定下标索引值后列表为，{my_list}")

# 3.1 在指定下标位置插入元素，后面的元素顺移(只能向后移)
print("-------------------------------")
print(f"插入元素前的列表为：{my_list}")
insert1_res = my_list.insert(2, "guanYu")
print(f"插入元素后返回的值为:{insert1_res}")
print(f"插入元素后的列表为：{my_list}")
# 3.2 倒序位置插入元素
my_list.insert(-1, "caoCao")
print(f"插入元素后caoCao的列表为：{my_list}")

# 4 在列表的尾部追加单个新元素 append
print("-------------------------------")
my_list.append("siMaYi")
print(f"追加元素siMaYi后的列表为:{my_list}")

# 5 在列表的尾部追加一批元素 extend
my_list.extend([1, 2, 3])
print(f"追加一批元素后的列表为:{my_list}")

# 6 删除指定下标索引的元素 2种方式
print("-------------------------------")
my_list = ["caoCao", "liuBei", "sunQuan"]
# 6.1 del 列表[下标索引]
del my_list[2]
print(f"列表删除元素后的结果为：{my_list}")

# 6.2 列表.pop(下标索引)
element = my_list.pop(1)
print(f"pop删除下标元素后的结果为：{my_list}，删除的元素为:{element}")

# 7 删除元素在列表中的第一个匹配项 如果元素在列表中不存在则报错 list.remove(x): x not in list
my_list = ["a", "b", "a", "c"]
my_list.remove("a")
print(f"删除元素后列表结果为:{my_list}")

# 8 清空列表元素
my_list.clear()
print(f"清空列表元素后的结果为：{my_list}")

# 9 统计指定元素个数 列表.count(元素)
my_list = ["a", "b", "a", "c"]
count_a = my_list.count("a")
print(f"列表中元素a的个数为：{count_a}")

# 10 统计列表的全部元素个数 len(列表)
list_size = len(my_list)
print(f"列表my_list的全部元素个数为:{list_size}")
